YAML教程

您所在的位置:网站首页 libyaml tutorial YAML教程

YAML教程

2022-12-22 06:48| 来源: 网络整理| 查看: 265

一、简介

YAML是一种人们可以轻松阅读的数据序列化格式,并且它非常适合对动态编程语言中使用的数据类型进行编码。YAML是YAML Ain't Markup Language简写,和GNU("GNU's Not Unix!")一样,YAML是一个递归着说“不”的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。YAML不是XML。它可以用作数据序列,配置文件,log文件,Internat信息和过滤。

参考:http://jyaml.sourceforge.net/download.html

        http://justjavac.iteye.com/blog/694498

 

 

二、安装配置

1)java:下载jar包并导入

https://repo1.maven.org/maven2/org/jyaml/jyaml/1.3/jyaml-1.3.jar 或 http://www.findmaven.net/dependency/org.jyaml/jyaml/1.3/jyaml-1.3.jar 或 http://www.java2s.com/Code/Jar/j/Downloadjyaml13dgujar.htm

 

2)c:libyaml

方式1:yum方式

yum install libyaml-devel libyaml

 

方式2:下载libyaml并编译安装

wget http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz tar -zxvf yaml-0.1.5.tar.gz $ ./configure $ make # make install

 

三、编程实例

参考:http://pyyaml.org/wiki/LibYAML

        http://yaml.org/spec/1.1/

 

程度1:获取yaml版本信息

#include #include #include #ifdef NDEBUG #undef NDEBUG #endif #include int main(void) { int major = -1; int minor = -1; int patch = -1; char buf[64]; yaml_get_version(&major, &minor, &patch); sprintf(buf, "%d.%d.%d", major, minor, patch); assert(strcmp(buf, yaml_get_version_string()) == 0); /* Print structure sizes. */ printf("sizeof(token) = %d\n", sizeof(yaml_token_t)); printf("sizeof(event) = %d\n", sizeof(yaml_event_t)); printf("sizeof(parser) = %d\n", sizeof(yaml_parser_t)); return 0; }

编译

gcc -o example1 example1.c -lyaml

运行

 

 

程度2:

#include #include #include #ifdef NDEBUG #undef NDEBUG #endif #include int main(int argc, char *argv[]) { int number; if (argc < 2) { printf("Usage: %s file1.yaml ...\n", argv[0]); return 0; } for (number = 1; number < argc; number ++) { FILE *file; yaml_parser_t parser; yaml_document_t document; int done = 0; int count = 0; int error = 0; printf("[%d] Loading '%s': ", number, argv[number]); fflush(stdout); file = fopen(argv[number], "rb"); assert(file); assert(yaml_parser_initialize(&parser)); yaml_parser_set_input_file(&parser, file); while (!done) { if (!yaml_parser_load(&parser, &document)) { error = 1; break; } done = (!yaml_document_get_root_node(&document)); yaml_document_delete(&document); if (!done) count ++; } yaml_parser_delete(&parser); assert(!fclose(file)); printf("%s (%d documents)\n", (error ? "FAILURE" : "SUCCESS"), count); } return 0; }

编译

gcc -o example2 example2.c -lyaml

运行



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3